#define  _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>





//Add函数求整数和

//int Add(int x, int y)
//{
//	int z = x + y;
//	return z;
//}
//int main()
//{
//	int a = 0, b = 0;
//	printf("请输入两个整数：");
//	scanf("%d %d", &a, &b);
//	int sum = Add(a, b);
//	printf("两个整数和为：%d", sum);
//	return 0;
//}






//ADD宏求整数和
//#define ADD(x,y) ((x)+(y))
//int main()
//{
//    printf("请输入两个整数：");
//	int a = 0, b = 0;
//	scanf("%d %d", &a, &b);
//	int c = ADD(a, b);
//	printf("整数和为：%d", c);
//	return 0;
//}






//if选择语句
//int main()
//	{
//	printf("你是否会好好学习C语言？(1 or 0)\n");
//	int num = 0;
//	scanf("%d", &num);
//	if (num == 1)
//	{
//		printf("你会取得好成绩的！");
//	}
//	else
//	{
//		printf("你不会掌握C语言的！！！");
//	}
//		return 0;
//	}






//while循环语句
//int main()
//{
//	printf("如果这次考试不及格应该怎么做？\n");
//	int num = 0;
//	while (num < 10)
//	{
//		printf("继续努力学习！！\n");
//		num++;
//	}
//	if (num = 10)
//	{
//		printf("下次考试你会及格的！！");
//	}
//	return 0;
//}






//数组
//#include<string.h>
//int main()
//{
//	char arr[] = "abcdefghi" ;
//	printf("%s\n",arr);
//	printf("%c\n", arr[3]);
//	printf("%zu,%zu\n", sizeof arr, sizeof arr[0]);
//	printf("%zu\n", sizeof arr / sizeof arr[0]);
//	printf("%d\n", strlen (arr));
//
//	int arr2[10] = {10,11,12,13,14,15,16,17,18,19};
//	int i = 0;
//	while (i < 10)
//	{
//		printf("%d\n", arr2[i]);
//		i++;
//		}
//	return 0;
//}





//指针
//int main()
//{
//	int a = 20;
//	printf("%p\n", &a);
//	int* p = &a;
//	*p = 60;
//	printf("%d", a);
//	return 0;
//}







//结构体
//struct Stu
//{
//	char name[10];
//	int age;
//	char sex[10];
//	char tele[20];
//};
//void print(struct Stu* ps)
//{
//	printf("%s %d %s %s\n", (*ps).name, (*ps).age, (*ps).sex, (*ps).tele);
//	printf("%s %d %s %s\n", ps->name, ps->age, ps->sex, ps->tele);
//}
//int main()
//{
//	struct Stu s = { "zhangsan",18,"nan","13715662309" };
//	printf("%s,%d,%s,%s\n", s.name, s.age, s.sex, s.tele);
//	print(&s);
//	return 0;
//}







//初阶if
//#include<stdio.h>
//int main(void)
//{
//	int age = 0;
//	scanf("%d", &age);
//	if (age <= 18)
//	{
//		printf("青少年");
//	}
//		else if (18 < age && age <= 28)
//		{
//			printf("青年");
//		}
//		else if (28 < age && age <= 40)
//		{
//			printf("壮年");
//		}
//	
//	else
//	{
//		printf("老年");
//	}
//	
//}






//选择语句
////if
//#include<stdio.h>
//int main()
//{
//	int a = 0;
//	scanf("%d", &a);
//	if (a <= 18)
//		printf("青少年");
//	else if (a > 18 && a <= 28)
//		printf("青年");
//	else if (a > 28 && a <= 40)
//		printf("壮年");
//	else if (a > 40 && a <= 60)
//		printf("中年");
//	else
//		printf("老年");
//
//	return 0;
//}







//swich-1
// 
//#include<stdio.h>
//int main()
//{
//	int day = 0;
//	scanf("%d", &day);
//	switch(day)
//	{
//	case 1:
//		printf("星期一\n");
//		break;
//	case 2:
//		printf("星期二\n");
//		break;
//	case 3:
//		printf("星期三\n");
//		break;
//	case 4:
//		printf("星期四\n");
//		break;
//	case 5:
//		printf("星期五\n");
//		break;
//	case 6:
//		printf("星期六\n");
//		break;
//	case 7:
//	    printf("星期日\n");
//	    break;
//	default:
//		printf("选择错误");
//	}
//	return 0;
//}






//swich-2
// 
//#include<stdio.h>;
//int main()
//{
//	int day = 0;
//	scanf("%d", &day);
//	switch (day)
//	{
//	case 1:
//	case 2:
//	case 3:
//	case 4:
//	case 5:
//		printf("weekday");
//		break;
//	case 6:
//	case 7:
//		printf("weekend");
//		break;
//	default:
//		break;
//	}
//	return 0;
//
//}






//while循环
//#include<stdio.h>
//int main()
//{
//	int i = 0;
//	while (i < 10)
//	{
//		i++;
//		printf("%d ", i);
//		
//	}
//	return 0;
//}





//for循环
//#include<stdio.h>
//int main()
//{
//	int i = 0;
//	for (i = 1; i <=10; i++)
//	{
//		if (i == 4)
//			continue;
//		printf("%d ", i);
//	}
//	return 0;
//}






//嵌套for
//#include<stdio.h>
//int main()
//{
//	int i = 0,j = 0 ;
//	for (i=0; i < 4; i++)
//	{
//		for (j=0; j < 4; j++)
//		{
//			printf("hehe\n");
//		}
//	}
//	return 0;
//}






//计算n的阶乘
//#include<stdio.h>
//int main()
//{
//	int i = 1,n = 0,ret = 1;
//	scanf("%d",&n);
//	for (i = 1; i <= n; i++)
//	{
//		ret = ret * i;
//	}
//	printf("%d", ret);
//	return 0;
//}








//计算1！+2！+···+n!的和

//(1)
//#include<stdio.h>
//int main()
//{
//	int i = 1, n = 0, ret = 1,sum=0;
//	scanf("%d", &n);
//		for (i = 1; i <= n; i++)
//		{
//			ret = ret * i;
//			sum = sum + ret;
//		}
//		printf("%d", sum);
//	return 0;
//}



//(2)
//#include<stdio.h>;
//int main()
//{
//	int n = 1, i = 1, ret = 1, sum = 0;
//	for (n = 1; n <= 3; n++)
//	{
//		int ret = 1;
//		for (i = 1; i <= n; i++)
//		{
//			ret = ret * i;
//		}
//		sum = sum + ret;
//	}
//	printf("%d", sum);
//	return 0;
//}








//在有序数组中查找具体某个数k

//顺序查找
//#include<stdio.h>
//int main()
//{
//	char arr[] = { 1,5,2,4,1,9,6,7,8,9 };
//	int k = 7;
//	int n = 0;
//	while (arr[n] != 7)
//	{
//		n++;
//	}
//	if (arr[n] == 7)
//	{
//		printf("找到了，其下标为%d", n);
//	}
//	return 0;
//}







//二分法查找
//#include<stdio.h>
//int main()
//{
//	char arr[] = { 1,2,3,4,5,6,7,8,9 };
//	int k = 7;
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int left = 0;
//	int right = sz - 1;
//	
//	while(left<=right)
//	{
//		int mid = (left + right) / 2;
//		if (arr[mid] < k)
//		{
//			left = mid + 1;
//		}
//		else if (arr[mid] > k)
//		{
//			right = mid - 1;
//		}
//		else
//		{
//			printf("找到了，下标为%d", mid);
//			break;
//		}
//	}
//	return 0;
//}







//向中间打印
//#include<stdio.h>
//#include<windows.h>//延时Sleep
//#include<stdlib.h>//清屏system
//int main()
//{
//	char arr1[] = "i love u";
//	char arr2[] = "########";
//	int left = 0;
//	int right = strlen(arr2)-1;
//	while (left <= right)
//	{
//		arr2[left] = arr1[left];
//		arr2[right] = arr1[right];
//		printf("%s", arr2);
//		//延时1000ms
//		Sleep(1000);
//		//清屏
//		system("cls");
//		left++;
//		right--;
//	}
//	printf("%s", arr2);
//	return 0;
//}







//输入密码测试
//#include<stdio.h>
//#include<string.h>     //strcmp   
//int main()
//{
//	char password[20] = { 0 };
//	int i = 0;
//	for (i = 0; i < 3; i++)
//	{
//		printf("请输入密码:\n");
//		scanf("%s", &password);
//		if (strcmp(password, "zxy") == 0)    //判断字符串是否相等
//		{
//			printf("密码正确"); break;
//		}
//		else
//			printf("密码错误");
//	}
//	if (i == 3)
//		printf("三次输入错误，退出程序");
//	return 0;
//}






//猜数字游戏
//#include<stdio.h>
//#include<stdlib.h>
//#include<time.h>
//
//void game()
//{
//	int ret = rand() % 100 + 1;
//	int guess = 0;
//	while (1)
//	{
//		printf("请输入一个数:");
//		scanf("%d", &guess);
//		if (guess < ret)
//			printf("猜小了\n");
//		else if (guess > ret)
//			printf("猜大了\n");
//		else
//		{
//			printf("猜对了\n"); break;
//		}
//	
//	}
//}
//void menu()
//{
//	printf("输入1—> play game\n");
//	printf("输入0 —>off\n");
//}
//int main()
//{
//	int input;
//	srand((unsigned)time(NULL));
//	do 
//	{
//		menu();
//		printf("请输入（1 or 0）:");
//		scanf("%d", &input);
//		switch (input)
//		{
//		case 1:
//			game(); break;
//		case 0:
//			printf("退出游戏"); break;
//		default:
//			printf("输入错误"); break;
//		}
//	} while (input);
//	return 0;
//}





//关机程序
//#include<stdlib.h>
//#include<stdio.h>
//int main()
//{
//	char input[20] = { 0 };
//	system("shutdown -s -t 60");
//	printf("小冲冲，你电脑60秒后就关机，除非你答对我的问题，哈哈哈哈！笑死我了！\n\n");
//	
//	again:
//	printf("来！来来来！！    大声的告诉我你义父的名字是：\n\n");
//	scanf("%s", &input);
//	if (strcmp(input, "翟翔宇") == 0)
//	{
//		printf("\n哎呦霍，挺诚实嘛，小伙子。没辜负为父的教诲。");
//		system("shutdown -a");
//	}
//	else
//	{
//		printf("\n好你个小冲冲！我再给你一次机会昂，别不识好歹！\n");
//		goto again;
//	}
//	return 0;
//}





//strcpy拷贝函数
//#include<stdio.h>
//int main()
//{
//	char arr1[20] = { 0 };
//	char arr2[] = "hello word\n";
//	strcpy(arr1, arr2);
//	printf("%s", arr1);
//	return 0;
//}





//memset替换字符函数
//#include<stdio.h>
//int main()
//{
//	char arr[] = "hello word\n";
//	memset(arr+6, 'y', 3);
//	printf("%s", arr);
//	return 0;
//}





//自定义求最大值函数
//#include<stdio.h>
//int get_max(int x, int y)
//{
//	return(x > y ? x : y);
//}
//int main()
//{
//	int a, b;
//	scanf("%d%d", &a, &b);
//	int m = get_max(a, b);
//	printf("%d", m);
//	return 0;
//}





//函数交换a,b值（指针）
//#include<stdio.h>
//
//void swap(int* px, int* py)
//{
//	int z = *px;
//	*px = *py;
//	*py = z;
//}
//int main()
//{
//	int a, b;
//	scanf("%d%d", &a, &b);
//	printf("交换前a,b的值为：%d,%d\n",a,b);
//	swap(&a, &b);
//	printf("交换后a,b的值为：%d,%d\n", a, b);
//	return 0;
//}







////列出100-200的所有素数


//#include<stdio.h>
//#include<math.h>
//int main()
//{
//	int i = 100;
//	for (i = 100; i <= 200; i++)
//	{
//		int flag = 1;
//		int j = 2;
//		                                //for (j = 2; j <= i - 1; j++)  
//	      for(j=2;j<=sqrt(i);j++)
//		{
//			if (i % j == 0)
//			{
//				flag = 0;
//			}
//		}
//		if (flag == 1)
//		{
//			printf("%d是素数\n",i);
//		}
//	}
//	return 0;
//}







//判断是否为素数（函数）
// 
//#include<stdio.h>
//int is_prime_number(int input)
//{
//	int i = 0;
//	for (i = 2; i <= input-1; i++);
//	{
//		if  (input % i == 0)
//		{
//			return 0;
//		}
//	}
//	return 1;
//}
//int main()
//{
//	int input = 0;
//	printf("请输入一个数\n");
//	scanf("%d", &input);
//	if (is_prime_number(input))
//	{
//		printf("%d是素数", input);
//	}
//	else
//	{
//		printf("%d不是素数",input);
//	}
//	return 0;
//}






//判断是否为闰年（函数）
// 
//#include<stdio.h>
//
//int is_leap_year(int year)
//{
//	if ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0)))
//	{
//		return 1;
//	}
//	else
//	{
//		return 0;
//	}
//}
//int main()
//{
//	int year;
//	printf("请输入一个年份：\n");
//	scanf("%d", &year);
//	if(is_leap_year(year))
//	{
//		printf("%d是闰年", year);
//	}
//	else
//	{
//		printf("%d不是闰年", year);
//	}
//	return 0;
//}








//写一个函数，每调用一次这个函数，num值+1

//#include<stdio.h>
//
//int Add(int num)
//{
//	num=num+1;
//	return num;
//}
//int main()
//{
//	int num = 0;
//	num = Add(num);
//	num = Add(num);
//	printf("%d",num);
//	return 0;
//}








//接受一个整型值，按照顺序打印它的每一位（函数递归）

//#include<stdio.h>
//
//void print(unsigned int num)
//{
//	if (num > 9)
//	{
//		print(num/10);
//	}
//	printf("%d ", num % 10);
//}
//int main()
//{
//	unsigned int num = 0;
//	printf("请打印一个无符号整数：");
//	scanf("%u",&num);
//	print(num);
//	return 0;
//}



//函数递归

//编写函数不允许创建临时变量，求字符串长度
//#include<stdio.h>
// 
//int Strlen(char* str)
//{
//	if (*str != '\0')
//	{
//		return 1 + Strlen(str + 1);
//	}
//	else
//		return 0;
//}
//int main()
//{
//	char arr[] = "abcdefg";
//	int len = Strlen(arr);
//	printf("%d", len);
//	return 0;
//}



//函数递归求n的阶乘
//#include<stdio.h>
//
//int fac(int n)
//{
//	if (n <= 1)
//	{
//		return 1;
//	}
//	else
//	{
//		return n * fac(n - 1);
//	}
//}
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int ret = fac(n);
//	printf("%d", ret);
//	return 0;
//}



//求第n个斐波那契数（函数递归）
//#include<stdio.h>
//
//int Fib(int n)
//{
//	if (n <= 2)
//	{
//		return 1;
//	}
//	else
//	{
//		return Fib(n - 2) + Fib(n - 1);
//	}
//}
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int num = Fib(n);
//	printf("%d", num);
//	return 0;
//}










//函数迭代

//求第n个斐波那契数（函数迭代法）
//#include<stdio.h>
//
//int Fib(int n)
//{
//	int a = 1;
//	int b = 1;
//	int c = 0;
//	while (n >= 3)
//	{
//		c = a + b;
//		a = b;
//		b = c;
//		n -- ;
//	}
//	return c;
//}
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int num = Fib(n);
//	printf("%d", num);
//	return 0;
//}








//求最大公约数（暴力求解）
//#include<stdio.h>
//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%d%d", &a, &b);
//	int min = (a < b) ? a : b;
//	int m = min;
//	while (1)
//	{
//		if (a % m == 0 && b % m == 0)
//		{
//			printf("%d", m);
//			break;
//		}
//		m--;
//	}
//	return 0;
//}



//求最大公约数（辗转相除法）
//#include<stdio.h>
//int main()
//{
//	int a = 0;
//	int b = 0;
//	int c = 0;
//	scanf("%d%d", &a, &b);
//	while (c = a % b)
//	{
//		a = b;
//		b = c;
//	}
//	printf("%d", b);
//	return 0;
//}








//九九乘法表
//#include<stdio.h>
//int main()
//{
//	int i = 0;
//	for (i = 1; i <= 9; i++)
//	{
//		int j = 1;
//		for (j = 1; j <= i; j++)
//		{
//			printf("%d*%d=%-2d ", i, j, i * j);
//		}
//		printf("\n");
//	}
//	return 0;
//}








//将一个整数分解成质因数相乘
//#include<math.h>
//int main()
//{
//	int n, k;
//	scanf("%d", &n);
//	printf("%d=", n);
//	for (k = 2; k <= n; k++)
//	{
//		while (n != k)
//		{
//			if (n % k == 0)
//			{
//				printf("%d*", k);
//				n /= k;
//				break;
//			}
//			else
//			{
//				break;
//			}
//		}
//	}
//	printf("%d", n);
//	return 0;
//}








//打印一个菱形
//#include<stdio.h>
//int main()
//{
//	int line = 4, i = 0, j = 0;
//	for (i = 0; i < line; i++)
//	{
//		for (j = 0; j < line - i - 1; j++)
//		{
//			printf(" ");
//		}
//		for (j = 0; j < 2 * i + 1; j++)
//		{
//			printf("#");
//		}
//		printf("\n");
//	}
//	for (i = 1; i < line; i++)
//	{
//		for (j = 0; j < i; j++)
//		{
//			printf(" ");
//		}
//		for (j = 0; j < 2 * (line - i) - 1; j++)
//		{
//			printf("#");
//		}
//		printf("\n");
//	}
//	return 0;
//}








//写一个函数验证哥德巴赫猜想
//#include<stdio.h>
//#include<math.h>
//
//
////判断一个数是否为素数
//int prime(int i)
//{
//	if (i >= 2)
//	{
//		int j = 2;
//		for (j = 2; j <= sqrt(i); j++)       //运用数学思想，若一个实数不能被其平方根前所有 > 2 的整数整除，则为素数
//		{
//			if (i % j == 0)
//				return 0;
//		}
//		return 1;
//	}
//	else
//		return 0;
//}
//
//
//int main()
//{
//	int n, a, b;                         //a，b为 n 的两个加数 
//input:                                   //在此运用 goto 语句，若输入错误，可返回重新输入
//	printf("请输入一个偶数:>");
//	scanf("%d", &n);
//	if (n % 2 == 0)                      //判断 n 是否为偶数
//	{
//		for (a = 2; a < n; a++)
//		{
//			b = n - a;
//			if (prime(a) && prime(b) && b >= n / 2)    //调用 prime函数，判断a，b是否为素数。并且b要满足所述条件
//			{
//				printf("%d=%d+%d\n", n, a, b);
//			}
//		}
//	}
//	else
//	{
//		printf("输入错误，请重新输入\n\n");
//		goto input;
//	}
//	return 0;
//}




































